<?php
class UtenteDao extends Dao {
	//! A constructor
	/**
	 * Constructs the LogDao
	 * @param $da instance of the DataAccess class
	 */
	function UtenteDao ( & $da )
	{
		Dao::Dao($da);
	}
	function & searchAll (){
		$sql='SELECT
  *
FROM 
  public."Possesso", 
  public."Ruolo", 
  public."Utente Registrato"
WHERE 
  "Possesso"."Fk_IdRuolo" = "Ruolo"."IdRuolo" AND
  "Utente Registrato"."Username" = "Possesso"."Fk_Username";';

		return $this->retrieve($sql);
	}

	function & login ($user, $password){
		$sql='SELECT * FROM
 	 public."Ruolo", 
 	 public."Utente Registrato", 
  	 public."Possesso"
     WHERE 
    "Ruolo"."IdRuolo" = "Possesso"."Fk_IdRuolo" AND
    "Utente Registrato"."Username" = "Possesso"."Fk_Username" AND	
   	"Utente Registrato"."Username"= \''.$user.'\' AND
	"Utente Registrato"."Password"= \''.$password.'\';';

		return $this->retrieve($sql);
	}
	function & insertUtente($user, $password){

		$sql='INSERT INTO "Utente Registrato"(Username ", "Password")
              VALUES ( \''.$user.'\', \''.$password.'\');';
		return $this->retrieve($sql);
	}
	function & insertRuolo($nome, $livello){
		$sql='INSERT INTO "Ruolo"( "Nome", "Livello")
              VALUES (\''.$nome.'\', \''.$livello.'\');';
		return $this->retrieve($sql);
	}
	function & updateRuolo($id,$nome,$livello){
		$sql='UPDATE "Ruolo"
              SET  "Nome"=\''.$nome.'\', "Livello"=\''.$livello.'\'
               WHERE IdRuolo='.$id.';';
		return $this->retrieve($sql);
	}
	function & deleteRuolo($id){
		$sql='DELETE FROM "Ruolo"
               WHERE IdRuolo='.$id.';';
		return $this->retrieve($sql);
	}
	function & deleteUtente($username){
		$sql='DELETE FROM
  public."Utente Registrato"
  WHERE
  "Utente Registrato"."Username"=\''.$username.'\';';
		return $this->retrieve($sql);
	}
	function & insertPossessoStudente($username ){
		$sql='INSERT INTO "Possesso"("Fk_Username", "Fk_IdRuolo")
               VALUES ( \''.$username.'\', \'3\');';
		return $this->retrieve($sql);
	}
	function & selectRuolo(){
		$sql='SELECT "IdRuolo"
              FROM "Ruolo";';
		return $this->retrieve($sql);
	}
	function & selectUsername($username){
		$sql='SELECT "Username"
               FROM "Utente Registrato" WHERE "Utente Registrato"."Username"=\''.$username.'\';';
		return $this->retrieve($sql);
	}
	function & updateRuoloUtente($username,$idruolo){
		$sql='UPDATE "Possesso" SET  "Fk_Username"=\''.$username.'\', "Fk_IdRuolo"=\''.$idruolo.'\'
              WHERE Fk_IdRuolo='.$idruolo.';';
		return $this->retrieve($sql);
	}
	function registrazioneStudente($matricola,$email, $password){
		$sql='INSERT INTO "Utente Registrato"("Username", "Password")
              VALUES (\''.$email.'\', \''.$password.'\');';
		if(($this->retrieve($sql))!=false){
			$sql1='UPDATE "Studente"
           SET "Email"=\''.$email.'\'
            WHERE "Matricola"='.$matricola.';';	
		 return $this->retrieve($sql1);
		}else return $this->retrieve($sql);


	}
	function getUtenteRegistratoByEmail($email){

		$sql='SELECT  *
           FROM 
             "Utente Registrato"  
           WHERE 
           "Username" = \''.$email.'\';';	

		return $this->retrieve($sql);
	}
	function getUtenteRegistratoAll(){
		$sql='SELECT "Username"
FROM   
  public."Utente Registrato";';
		return $this->retrieve($sql);

	}
	function getXMLRuolo($ruolo){
		$sql='SELECT 
  "Ruolo"."Livello"
FROM 
  public."Ruolo"
WHERE 
  "Ruolo"."Nome" = \''.$ruolo.'\';';
		return $this->retrieve($sql);
	}
	function getAllRuoli(){
	      $sql='SELECT 
  "Ruolo"."Nome",
    "Ruolo"."IdRuolo"
FROM 
  public."Ruolo"
WHERE 
  "Ruolo"."Nome" != \'Ospite\'';
	      return $this->retrieve($sql);
	}

}


